/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ch.uzh.ifi.sonar.model.impl;

import ch.uzh.ifi.sonar.model.FunctionIndicator;
import ch.uzh.ifi.sonar.model.ModelPackage;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Function Indicator</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link ch.uzh.ifi.sonar.model.impl.FunctionIndicatorImpl#getSTSUB <em>STSUB</em>}</li>
 *   <li>{@link ch.uzh.ifi.sonar.model.impl.FunctionIndicatorImpl#getSTXLN <em>STXLN</em>}</li>
 *   <li>{@link ch.uzh.ifi.sonar.model.impl.FunctionIndicatorImpl#getSTGTO <em>STGTO</em>}</li>
 *   <li>{@link ch.uzh.ifi.sonar.model.impl.FunctionIndicatorImpl#getSTCYC <em>STCYC</em>}</li>
 *   <li>{@link ch.uzh.ifi.sonar.model.impl.FunctionIndicatorImpl#getSTPAR <em>STPAR</em>}</li>
 *   <li>{@link ch.uzh.ifi.sonar.model.impl.FunctionIndicatorImpl#getSTPTH <em>STPTH</em>}</li>
 *   <li>{@link ch.uzh.ifi.sonar.model.impl.FunctionIndicatorImpl#getSTMIF <em>STMIF</em>}</li>
 *   <li>{@link ch.uzh.ifi.sonar.model.impl.FunctionIndicatorImpl#getSTLIN <em>STLIN</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class FunctionIndicatorImpl extends EObjectImpl implements FunctionIndicator {
	/**
	 * The default value of the '{@link #getSTSUB() <em>STSUB</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTSUB()
	 * @generated
	 * @ordered
	 */
	protected static final int STSUB_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSTSUB() <em>STSUB</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTSUB()
	 * @generated
	 * @ordered
	 */
	protected int stsub = STSUB_EDEFAULT;

	/**
	 * The default value of the '{@link #getSTXLN() <em>STXLN</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTXLN()
	 * @generated
	 * @ordered
	 */
	protected static final int STXLN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSTXLN() <em>STXLN</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTXLN()
	 * @generated
	 * @ordered
	 */
	protected int stxln = STXLN_EDEFAULT;

	/**
	 * The default value of the '{@link #getSTGTO() <em>STGTO</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTGTO()
	 * @generated
	 * @ordered
	 */
	protected static final int STGTO_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSTGTO() <em>STGTO</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTGTO()
	 * @generated
	 * @ordered
	 */
	protected int stgto = STGTO_EDEFAULT;

	/**
	 * The default value of the '{@link #getSTCYC() <em>STCYC</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTCYC()
	 * @generated
	 * @ordered
	 */
	protected static final int STCYC_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSTCYC() <em>STCYC</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTCYC()
	 * @generated
	 * @ordered
	 */
	protected int stcyc = STCYC_EDEFAULT;

	/**
	 * The default value of the '{@link #getSTPAR() <em>STPAR</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTPAR()
	 * @generated
	 * @ordered
	 */
	protected static final int STPAR_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSTPAR() <em>STPAR</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTPAR()
	 * @generated
	 * @ordered
	 */
	protected int stpar = STPAR_EDEFAULT;

	/**
	 * The default value of the '{@link #getSTPTH() <em>STPTH</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTPTH()
	 * @generated
	 * @ordered
	 */
	protected static final int STPTH_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSTPTH() <em>STPTH</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTPTH()
	 * @generated
	 * @ordered
	 */
	protected int stpth = STPTH_EDEFAULT;

	/**
	 * The default value of the '{@link #getSTMIF() <em>STMIF</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTMIF()
	 * @generated
	 * @ordered
	 */
	protected static final int STMIF_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSTMIF() <em>STMIF</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTMIF()
	 * @generated
	 * @ordered
	 */
	protected int stmif = STMIF_EDEFAULT;

	/**
	 * The default value of the '{@link #getSTLIN() <em>STLIN</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTLIN()
	 * @generated
	 * @ordered
	 */
	protected static final int STLIN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSTLIN() <em>STLIN</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSTLIN()
	 * @generated
	 * @ordered
	 */
	protected int stlin = STLIN_EDEFAULT;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FunctionIndicatorImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return ModelPackage.Literals.FUNCTION_INDICATOR;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSTSUB() {
		return stsub;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSTSUB(int newSTSUB) {
		int oldSTSUB = stsub;
		stsub = newSTSUB;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FUNCTION_INDICATOR__STSUB, oldSTSUB, stsub));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSTXLN() {
		return stxln;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSTXLN(int newSTXLN) {
		int oldSTXLN = stxln;
		stxln = newSTXLN;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FUNCTION_INDICATOR__STXLN, oldSTXLN, stxln));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSTGTO() {
		return stgto;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSTGTO(int newSTGTO) {
		int oldSTGTO = stgto;
		stgto = newSTGTO;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FUNCTION_INDICATOR__STGTO, oldSTGTO, stgto));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSTCYC() {
		return stcyc;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSTCYC(int newSTCYC) {
		int oldSTCYC = stcyc;
		stcyc = newSTCYC;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FUNCTION_INDICATOR__STCYC, oldSTCYC, stcyc));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSTPAR() {
		return stpar;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSTPAR(int newSTPAR) {
		int oldSTPAR = stpar;
		stpar = newSTPAR;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FUNCTION_INDICATOR__STPAR, oldSTPAR, stpar));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSTPTH() {
		return stpth;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSTPTH(int newSTPTH) {
		int oldSTPTH = stpth;
		stpth = newSTPTH;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FUNCTION_INDICATOR__STPTH, oldSTPTH, stpth));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSTMIF() {
		return stmif;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSTMIF(int newSTMIF) {
		int oldSTMIF = stmif;
		stmif = newSTMIF;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FUNCTION_INDICATOR__STMIF, oldSTMIF, stmif));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSTLIN() {
		return stlin;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSTLIN(int newSTLIN) {
		int oldSTLIN = stlin;
		stlin = newSTLIN;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FUNCTION_INDICATOR__STLIN, oldSTLIN, stlin));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case ModelPackage.FUNCTION_INDICATOR__STSUB:
				return getSTSUB();
			case ModelPackage.FUNCTION_INDICATOR__STXLN:
				return getSTXLN();
			case ModelPackage.FUNCTION_INDICATOR__STGTO:
				return getSTGTO();
			case ModelPackage.FUNCTION_INDICATOR__STCYC:
				return getSTCYC();
			case ModelPackage.FUNCTION_INDICATOR__STPAR:
				return getSTPAR();
			case ModelPackage.FUNCTION_INDICATOR__STPTH:
				return getSTPTH();
			case ModelPackage.FUNCTION_INDICATOR__STMIF:
				return getSTMIF();
			case ModelPackage.FUNCTION_INDICATOR__STLIN:
				return getSTLIN();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case ModelPackage.FUNCTION_INDICATOR__STSUB:
				setSTSUB((Integer)newValue);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STXLN:
				setSTXLN((Integer)newValue);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STGTO:
				setSTGTO((Integer)newValue);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STCYC:
				setSTCYC((Integer)newValue);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STPAR:
				setSTPAR((Integer)newValue);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STPTH:
				setSTPTH((Integer)newValue);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STMIF:
				setSTMIF((Integer)newValue);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STLIN:
				setSTLIN((Integer)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case ModelPackage.FUNCTION_INDICATOR__STSUB:
				setSTSUB(STSUB_EDEFAULT);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STXLN:
				setSTXLN(STXLN_EDEFAULT);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STGTO:
				setSTGTO(STGTO_EDEFAULT);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STCYC:
				setSTCYC(STCYC_EDEFAULT);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STPAR:
				setSTPAR(STPAR_EDEFAULT);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STPTH:
				setSTPTH(STPTH_EDEFAULT);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STMIF:
				setSTMIF(STMIF_EDEFAULT);
				return;
			case ModelPackage.FUNCTION_INDICATOR__STLIN:
				setSTLIN(STLIN_EDEFAULT);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case ModelPackage.FUNCTION_INDICATOR__STSUB:
				return stsub != STSUB_EDEFAULT;
			case ModelPackage.FUNCTION_INDICATOR__STXLN:
				return stxln != STXLN_EDEFAULT;
			case ModelPackage.FUNCTION_INDICATOR__STGTO:
				return stgto != STGTO_EDEFAULT;
			case ModelPackage.FUNCTION_INDICATOR__STCYC:
				return stcyc != STCYC_EDEFAULT;
			case ModelPackage.FUNCTION_INDICATOR__STPAR:
				return stpar != STPAR_EDEFAULT;
			case ModelPackage.FUNCTION_INDICATOR__STPTH:
				return stpth != STPTH_EDEFAULT;
			case ModelPackage.FUNCTION_INDICATOR__STMIF:
				return stmif != STMIF_EDEFAULT;
			case ModelPackage.FUNCTION_INDICATOR__STLIN:
				return stlin != STLIN_EDEFAULT;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (STSUB: ");
		result.append(stsub);
		result.append(", STXLN: ");
		result.append(stxln);
		result.append(", STGTO: ");
		result.append(stgto);
		result.append(", STCYC: ");
		result.append(stcyc);
		result.append(", STPAR: ");
		result.append(stpar);
		result.append(", STPTH: ");
		result.append(stpth);
		result.append(", STMIF: ");
		result.append(stmif);
		result.append(", STLIN: ");
		result.append(stlin);
		result.append(')');
		return result.toString();
	}

} //FunctionIndicatorImpl
